4-3 扩展使用HbuilderX CLI发布微信小程序
为什么需要 CLI 发布
使用 HBuilderX 可视化界面发布小程序需要在 HBuilderX 和微信开发者工具之间切换操作。而 CLI 方式只需一行命令即可完成编译和上传,更适合 CI/CD 自动化流程。
CLI 项目的另一个优势是编译器版本清晰可控,不会因为 HBuilderX 升级导致项目不可运行。
获取上传密钥
在微信公众平台生成小程序上传密钥:
- 登录 微信公众平台
- 进入"开发管理 -> 开发设置"
- 找到"小程序代码上传",点击"生成"(已生成则显示"重置")
- 下载密钥文件(
.key格式) - 关闭 IP 白名单(开发阶段),生产环境可在固定 IP 的发布服务器上开启白名单
CLI 发布命令
HBuilderX 提供了 CLI 工具,支持通过命令行发布:
# 命令格式
cli publish --platform MP-WEIXIN --project <项目路径> --upload true --appid <AppID> --description <描述> --version <版本号> --privatekey <密钥路径>
bash
编写发布脚本
在项目根目录创建 scripts/publish.js:
const fs = require('fs')
const path = require('path')
const { exec } = require('child_process')
// 读取 package.json 获取版本号
const packageJson = JSON.parse(
fs.readFileSync(path.join(__dirname, '../package.json'), 'utf-8')
)
const config = {
platform: 'MP-WEIXIN',
project: process.env.project || 'uni-app-vue3',
upload: true,
appid: process.env.appid,
description: process.env.description || 'CLI发布',
version: process.env.version || packageJson.version,
privateKey: path.join(__dirname, 'key/private.wx1234567890.key'),
isAlpha: process.env.isAlpha === 'true',
cli: '/Applications/HBuilderX.app/Contents/MacOS/cli' // macOS 路径
// Windows: 'C:/HBuilderX/cli.bat'
}
const cmd = `"${config.cli}" publish --platform ${config.platform} --project ${config.project} --upload ${config.upload} --appid ${config.appid} --description "${config.description}" --version ${config.version} --privatekey "${config.privateKey}"`
exec(cmd, (error, stdout, stderr) => {
if (error) {
console.error(`发布失败: ${error.message}`)
return
}
console.log(stdout)
console.log('发布成功!')
})
javascript
在 package.json 中添加脚本命令:
{
"scripts": {
"publish:mp-weixin": "node scripts/publish.js"
}
}
json
使用方式
# 设置环境变量后发布
appid=wx1234567890 description="测试CLI发布" pnpm publish:mp-weixin
bash
esbuild 版本冲突问题
CLI 项目通过 HBuilderX 发布时,可能遇到 esbuild 版本冲突(开发模式需要 0.21.5,发布模式需要 0.20)。
解决方案:在 package.json 中添加 resolutions 字段统一版本:
{
"resolutions": {
"esbuild": "0.21.5"
}
}
json
然后删除 node_modules 和 lock 文件,重新安装依赖。
常见编译问题
window.js 编译错误
在 manifest.json 中找到 ES6 转 ES5 选项并取消勾选,编译即可通过。
缺少上传插件
首次使用 CLI 发布时提示"依赖插件 微信小程序的上传插件",需要在 HBuilderX 插件市场搜索并安装对应插件。
完整发布流程
1. 开发完成 -> 2. 生成上传密钥 -> 3. 配置 publish.js
↓
4. 安装上传插件 -> 5. 执行 pnpm publish:mp-weixin
↓
6. HBuilderX 编译 -> 7. 自动上传到微信平台
↓
8. 微信后台 -> 版本管理 -> 查看上传的版本 -> 提交审核 -> 发布上线
text
参考资源
- HBuilderX CLI 文档 - 命令行工具
- uni-app 持续集成 - CI/CD 配置
↑